package clara.azin.model;

import java.io.Serializable;
import java.util.Observable;
import clara.azin.controller.WebTreeAzinController;
import clara.azin.model.Tree.VISUALIZATION_MODE;


public class WebTreeAzinModel extends Observable implements Serializable {
	
	//ID per la serializzazione
	private static final long serialVersionUID = -1560674710909332550L;
	
	//Profondita' dell'albero che si va a costruire
	public int depth;
	
	
	//Nodo iniziale che contiene la radice dell'albero
	public Tree root;
		
	
	
	
	//costruttore
	public WebTreeAzinModel(String root, int depth, float scale) throws Exception{
		super();
		this.depth=depth;
		this.root = new Tree(root);
		this.root.createGraph(depth);
		this.root.computeCoordinates(VISUALIZATION_MODE.GRAPH, WebTreeAzinController.HEIGHT, WebTreeAzinController.WIDTH,scale);
		this.root.printGraph();
		return ;
	}
	
	
	//aggiorna gli osservatori
	public void updateObservers(){
		notifyObservers();
	}
	
	//aggiorna gli osservatori
	public void updateObservers(float scale,VISUALIZATION_MODE mode){
		
		this.root.computeCoordinates(mode, WebTreeAzinController.HEIGHT, WebTreeAzinController.WIDTH,scale);
		setChanged();
		notifyObservers();
	}

	
}
